package com.sj.proxy;

/**
 * 聚合，实现接口的方式在方法的前后记录时间，Tank3也实现Moveable接口，保存Tank类，
 * 每次调用Tank的move方法，在其前后加入逻辑
 */

/**
 * 继承、聚合两种方式都实现了对class Tank中move()方法的代理，哪种方法好呢？——聚合的方式好些，继承的方式不灵活
 */
public class Tank3 implements IMoveable {
    private Tank t;

    public Tank3(Tank t) {
        super();
        this.t = t;
    }

    public void move() {
        long start = System.currentTimeMillis();
        t.move();
        long end = System.currentTimeMillis();
        System.out.println("time: " + (end - start));
    }

}
